About portfolYOU
portfolYOU is a free modern open-source Jekyll portfolio and blogging theme that works with GitHub Pages.
Features
- Works 100% with GitHub Pages as a remote theme.
- Based on Bootstrap, FontAwesome & GitHub Buttons (use any of those libraries’ components anywhere in the project). Check dependencies for more info.
- Minimal design and Animations.
- Search articles by title, tags or even descriptions.
- Support all image orientations (landscape, portrait or square) as a header image.
- Set of shortcodes to include various elements.
- Skills Progress bars and Timeline.
- Responsive design.
- Attractive 404 page.
- Repository metadata.
- Well Documented.
Installation
As a GitHub Pages remote theme
- Download portfolYOU as .zip from official repo then extract the files.
- Delete unnecessary files and folders:
README.md
,LICENSE
,docs/
- Delete theme directories, as they will be included remotely :
_includes/
,_layouts/
,_sass/
,assets/
- Delete
Gemfile
and.gitignore
if you aren’t going to set up the theme locally. -
Your directory structure should be looking something like this:
your_site_name/ ├── _data/ │ ├── other-skills.yml │ ├── programming-skills.yml │ └── timeline.yml ├── _posts/ │ ├── YYYY-MM-DD-article-1-name.md │ └── YYYY-MM-DD-article-2-name.md ├── _projects/ │ ├── project-1.md │ └── project-2.md ├── pages/ │ ├── about.md │ ├── articles.html │ └── projects.html ├── _config.yml ├── 404.html ├── index.html └── search.json
-
Add the following line to the build settings section of
_config.yml
:remote_theme: YoussefRaafatNasry/portfolYOU
or to use a specific version:
remote_theme: YoussefRaafatNasry/portfolYOU@v1.0.0
- Replace
baseurl: "/portfolYOU"
withbaseurl: ""
if your are hosting the site atusername.github.io
directly. - Change other configuration options in
_config.yml
depending on your needs. - Set up portfolYOU locally or publish it to GitHub Pages.
As a Fork
- Fork the repo.
- Clone your fork.
- Delete unwanted sections.
- Modify and edit files’ contents upon your needs.
- Change configuration options in
_config.yml
depending on your needs. - Commit and push changes to your fork.
- Set up portfolYOU locally or publish it to GitHub Pages.
Sections
portfolYOU’s sections are independent, you can remove any section upon your needs. Here’s a list of the files and folders needed by each section:
Projects | Articles | About |
---|---|---|
pages/projects.html | pages/articles.html | pages/about.md |
_includes/projects.html | _includes/articles.html | _includes/skills.html |
_sass/projects.scss ¹ | _sass/_articles.scss ¹ | _includes/timeline.html |
assets/js/card-animation.js ² | _layouts/post.html | _sass/_skills.scss ¹ |
_projects/ ³ | _posts/ ⁴ | _sass/_timeline.scss ¹ |
_data/ |
If you are deleting any section, please consider the following:
¹ remove reference from _sass/portfolYOU.scss
² remove reference from _includes/scripts.html
³ remove collections and defaults from _config.yml
⁴ remove posts default permalink from _config.yml
Customization
When using portfolYOU as a theme means you can take advantage of the file overriding method. This allows you to overwrite any file in this theme with your own custom file, simply by matching the file name and path. The most common example of this would be if you want to add your own styles or change the favicon.
To change the favicon for example just generate your own using favicon or any other tool. Copy your new favicon.ico
file into your own project with the same file path assets/favicon.ico
.
Adding Content
Adding new Projects
- Add
project-name.md
orproject-name.html
to_projects/
. -
Add front matter to the top of your new project file.
--- name: Awesome Project tools: [Tool1, Tool2] image: image url or path here. description: Write project description here. ---
- Add project body in markdown or html. Check available elements to enjoy extra customization.
- Check more projects templates from here.
Adding new Article
- Add
YYYY-MM-DD-article-name.md
to_posts/
. -
Add front matter to the top of your new article file.
--- title: Awesome Title tags: [TAG 1, TAG 2] style: fill / border (choose one only) color: primary / secondary / success / danger / warning / info / light / dark (choose one only) description: Write article description here, if you left this empty the article description will be the first 25 words of the article body. ---
- If you left both the style and color empty, the article’s style is set to default style.
- Add article body in markdown or html. Check available elements to enjoy extra customization.
- Check more articles templates from here.
Adding new Page
- Add
page-name.html
orpage-name.md
topages/
,new subfolder
or toroot directory
of your project. -
Add front matter to the top of your new page.
--- layout: default title: Page Name permalink: /page_permalink/ (the output path for the page) weight: 2 (the order of the page in the navigation bar) ---
- The new page will be added to the navigation bar of your project.
- Check more pages templates from here.
Adding External Project, Article or Page
If you want your project, article or even the page to refer to an external resource, google.com for example, just add the following attribute to your front matter.
---
external_url: https://google.com/
---
Adding new Skill
-
Add the following lines to
_data/programming-skills.yml
or_data/other-skills.yml
.- name: Awesome Skill percentage: 95 color: secondary / success / danger / warning / info / light / dark (choose one only, primary is default color)
-
To add a new Skills Category:
- Add
category_name-skills.yml
to_data/
. - Add skills to the file using the previously mentioned method.
- Open
pages/about.md
. -
Add the following lines to the skills section between
<div class="row">
and</div>
:{% include skills.html title="Category_Name Skills" source=site.data.category_name-skills %}
- Add
Adding new Timeline Item
Add the following lines to _data/timeline.yml
.
- title: Awesome Item
from: 2016
to: 2018
description: Write item description here.
Dependencies
Dependency | Version |
---|---|
Animate.css | v3.7.0 |
Bootstrap | v4.3.1 |
FontAwesome | v5.6.3 |
jQuery | v3.3.1 |
Popper.js | v1.14.6 |
wow.js | v1.1.2 |
Credits
- Simple Jekyll Search.
- pygments-css.
- GitHub Buttons.
- CSS3 Animated Skill Progress bar A pen by Shah Zobayer Ahmed.
- How to Create Bootstrap Card Hover Effect (jQuery) A video by Daily Tuition.
- Vertical Timeline (HTML-SCSS-CSS) A video by DevPen.
- 404 svg animated page A pen by Vladimir Gashenko.